package com.内部类.匿名内部类;

public class InnerClassExercise01 {
    /**如果这个类只用一次就完了的话，推荐使用匿名内部类，简化了过程*/
    public static void main(String[] args) {
/**  1.这个就相当于show（传入匿名内部类对象）
 * 在传参数时就定义并创建匿名内部类对象给show方法，一步到位*/
        show(new AA(){
            public void cry(){
                System.out.println("AA的cry方法");
            }
        });

        /**2. 相当于先定义并创建给AA接口的引用p；  p指向匿名内部类，再把p对象传给show方法 跟上面一致*/
        AA p = new AA(){
            public void cry(){
                System.out.println("AA的cry方法");
            }
        };
        show(p);
        /***3.编写实现类BB，重写cry方法，创建BB对象bb 在把bb传到show方法，*/
        BB bb = new BB();
        show(bb);

    }


    public static void  show(AA a){
        a.cry();
    }
}
interface AA{
    public void cry();
}

class BB implements AA{
    public void cry(){
        System.out.println("BB的cry方法");
    }
}